//***********************************************************************
//	File:		FireTrap.h
//	Author:		
//	Course:		SGP 1405
//	Purpose:	
//***********************************************************************
//***********************************************************************
//	Purposfully left blank for all comments regarding this file 
//	
//	
//	
//***********************************************************************



#pragma once
#include "Obstacle.h"
class FireTrap :
	public Obstacle
{
public:
	//Trilogy
	FireTrap(float posX = -1, float posY = -1);
	~FireTrap() = default;
	FireTrap(const FireTrap&) = default; 
	FireTrap& operator =(const FireTrap&) = default; 

	//Type 
	int GetType() const { return ENT_FIRETRAP; }

	//Interface
	void Update(float dt);
	void Render(void);
	void HandleCollision(const IEntity* pOther);
	void HandleEvent();
	SGD::Rectangle GetRect() const;

	//Accessors
	float GetDamage				(void)			{ return m_fDamage; }
	float GetDamageCDL			(void)			{ return m_fDamageCDL; }
	float GetDamageTimer		(void)			{ return m_fDamageTimer; }
	float GetDisableTimer		(void)			{ return m_fDisableTimer; }
	float GetDisableCDL			(void)			{ return m_fDisableCDL; }
	bool  GetTimerBased			(void)			{ return m_bTimerBased; }
	//Mutators	
	void SetDamage				(float dam)		{ m_fDamage = dam; }
	void SetDamageCDL			(float damCDL)	{ m_fDamageCDL = damCDL; }
	void SetDamageTimer			(float damtim)	{ m_fDamageTimer = damtim; }
	void SetDisableTimer		(float distim)	{ m_fDisableTimer = distim; }
	void SetDisableCDL			(float disCDL)	{ m_fDisableCDL = disCDL; }
	void SetTimerBased			(bool timbas)	{ m_bTimerBased = timbas; }

private:
	float m_fDamage			= 0.0f;
	float m_fDamageCDL		= 0.0f;
	float m_fDamageTimer	= 0.0f; 
	float m_fDisableTimer	= 0.0f;
	float m_fDisableCDL		= 0.0f;
	bool  m_bTimerBased		= false; 

};

